package com.homework;

import java.util.Scanner;

public class Test03 {
    public static void main(String[] args) {
        //键盘录入一个整数,找出整数在数组中存储的索引位置,如果不存在输出-1
        int[] arr = {11, 22, 33, 44, 55, 66, 77, 88, 99, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 11, 22};

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你要录取的整数");
        int num = scanner.nextInt();

        //调用findIndex方法，传入数组和要输入的数字
        int[] index = findIndex(arr, num);

        // 输出结果
        for (int i = 0; i < index.length; i++) {
            System.out.println("录取的"+num + "整数在数组的索引位置为" + index[i]);
        }


    }

    public static int[] findIndex(int[] arr, int num) {


        /**
         * 思路：首先遍历数组，把数组的的值和录入的值做对比，如果相等，记录index的位置
         */

        int[] indices = new int[arr.length];//创建一个整数数组，用于存储所有匹配的索引
        int count = 0; // 用于记录匹配的索引数量

        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == num) {
                // 如果找到匹配的元素，将其索引添加到indices数组中
                indices[count++] = i;

            }
        }
        // 如果没有找到任何匹配的索引，返回-1
        if (count == 0) {
            return new int[]{-1};
        }
        // 调整indices数组的大小，只包含实际找到的索引
        int[] result = new int[count];
        System.arraycopy(indices, 0, result, 0, count);
        return result;
    }

}
